console.log('\x1b[31mfor 循怀\x1b[0m');
for (let 步数=0; 步数 < 5; 步数++) {
    console.log(`向东走一步, 共 ${步数 + 1}`);
}


console.log('\x1b[31mdo ... while 循怀\x1b[0m');
let i = 0;
do {
    i += 1;
    console.log(i);
}
while (i < 5);


console.log('\x1b[31mwhile 循环\x1b[0m');
let n = 0;
let x = 0;
while (n < 3) {
    n++;
    x += n;
}
console.log(x);


console.log('\x1b[31m标签循环\x1b[0m');
let 计数 = 0;
外层循环: for (let i = 0; i < 10; i++) {
    for (let j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
            break 外层循环;
        }
        计数++;
    }
}
console.log(计数);

计数 = 0
外层循环1: for(let i = 0; i < 10; i++) {
    for(let j = 0; j < 10; j++) {
        if (i == 5 && j == 5) {
            continue 外层循环1;
        }
        计数++;
    }
}
console.log(计数);

i = 0;
let j = 10;
检测i和j: while(i < 4) {
    console.log(`i: ${i}`);
    i += 1;
    检测j: while(j > 4) {
        console.log(`j: ${j}`);
        j -= 1;
        if (j % 2 == 0) {
            continue 检测j;
        }
        console.log(j + ' 是奇数');
    }
    console.log(`i = ${i}`);
    console.log(`j = ${j}`);
}


console.log('\x1b[31mfor ... in 循环\x1b[0m');
function 属性(对象, 对象名称) {
    let 结果 = '';
    for(let i in 对象) {
        结果 += 对象名称 + '.' + i + ' = ' + 对象[i] + '<br>';
    }
    结果 += '<hr>';
    return 结果;
}
console.log(
    属性(
        {
            '品牌': '吉利',
            '变速箱': '自动档',
            '排量': '1.4T',
        },
        '车',
    )
);


console.log('\x1b[31mfor ... of 循环\x1b[0m');
let 数组 = [3, 5, 7];
数组.foo = '你好';

for(let i in 数组) {
    console.log(i);
}
console.log('----')
for(let i of 数组) {
    console.log(i);
}